package cn.ywsj.ywsjmidtier.entity.VO;

import cn.ywsj.ywsjmidtier.entity.BaseGroup;
import cn.ywsj.ywsjmidtier.entity.RegisterGroup;
import cn.ywsj.ywsjmidtier.entity.UserInfoGroup;
import lombok.Data;
import org.springframework.boot.convert.DataSizeUnit;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @ClassName : UserInfoVo
 * @Author : Lenovo
 * @Date: 2021/7/20 14:52
 * @Description :
 */
@Data
public class UserInfoVo implements Serializable {
    private static final long serialVersionUID = -1940340942352322708L;

    private Long userId;

    private Long inviteCode;

    private Long pUserId;

    @NotBlank(message = "{com.itonghui.user.account.null}", groups = {BaseGroup.Insert.class, UserInfoGroup.UserNameUpdate.class, RegisterGroup.RegiterInsert.class, RegisterGroup.PlateformRegiterInsert.class})
    @Pattern(regexp = "^((\\+86)?(13\\d|14[5-9]|15[0-35-9]|166|17[0-8]|18\\d|19[1-8-9])\\d{8})$", message = "{com.itonghui.user.account.regexp}", groups = {BaseGroup.Insert.class, UserInfoGroup.UserNameUpdate.class, RegisterGroup.RegiterInsert.class, RegisterGroup.PlateformRegiterInsert.class})
    private String userName;

    private Long custId;

    private String custName;

    private Integer userState;

    private Date userStateDate;

    @Size(min = 6, message = "{com.itonghui.user.password.Length.message}", groups = {BaseGroup.Update.class, UserInfoGroup.UserPWDUpdate.class, RegisterGroup.RegiterInsert.class, RegisterGroup.PlateformRegiterInsert.class})
    private String passwd;

    @NotBlank(message = "{com.itonghui.user.password.confirmation.null}", groups = {BaseGroup.Update.class, UserInfoGroup.UserPWDUpdate.class, RegisterGroup.RegiterInsert.class, RegisterGroup.PlateformRegiterInsert.class})
    private String rtpasswd;

    @NotBlank(message = "{com.itonghui.user.password.null}", groups = {BaseGroup.Update.class})
    private String repasswd;

    private Integer userType;

    private Integer userClass;

    private String eparchyCode;

    private String cityCode;

    private String departmentCode;

    private String nickName;

    private String filePath;

    private String passwdQues;

    private String passwdAnswer;

    private Date regDate;

    private String regType;

    private Integer passwdStrength;

    private String nickname;

    private String psptTypeCode;

    private String psptId;

    private Date psptEndDate;

    private String psptAddr;

    private String sex;

    private Date birthday;

    private String localNativeCode;

    private Integer population;

    private Integer folkCode;

    private String phone;

    private String cellphone;

    private String postCode;

    private String postAddr;

    private String fax;

    private String qq;

    private String blog;

    private String email;

    private String contactName;

    private String homeAddr;

    private String workName;

    private String workDepart;

    private String job;

    private String jobTypeCode;

    private String educateDegreeCode;

    private String marriage;

    private String communityId;

    private Integer scoreValue;

    private Integer creditClass;

    private String vitality;

    private Integer display;

    private String checkUser;

    private Date checkTime;

    private String backReason;

    private Long operUser;

    private Date operTime;

    private String remark;

    private Date addDate;

    private String rsrvStr1;

    private String rsrvStr2;

    private String rsrvStr3;

    private String rsrvStr4;

    private String rsrvStr5;

    private String image;

    private String msn;

    private String personalId;

    private String ip;

    private String roleAuthId;

    private String buyerRoleId;

    private Integer messageSwitch;

    private Integer errorNums;

    private Date lastErrorDate;

    private String lockedFlag;

    private String openid;

    private String message;

    private String sapUserCode;

    private String sapUserAccount;

    private String scoreModelNo;

    private String scoreModelName;

    private String custType;

    private Integer custState;

    private String expertType;

    private String procurementGroup;

    private String ssoOrgId;

    private String ssoAccountId;

    private List<Long> listId;

    private String sysId;

    private String setPasswordSaveCom;

    private String setPasswordSavePer;
}
